package com.yy.constant;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 定义了程序中所有的常量
 * </p>
 *
 * @author 杨阳
 * @since 2017年9月1日15:18:05
 */
@ApiModel(value = "定义了程序中公用的常量")
public class AppConstant {

    /**
     * <p>
     * 项目访问路径
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月1日
     */
    @ApiModelProperty(value = "项目访问路径")
    public static final String PRO_ROO_PATH = "/";

    /**
     * <p>
     * 用户登陆的路径
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月1日
     */
    @ApiModelProperty(value = "用户登陆的路径")
    public static final String PRO_LOGIN_PATH = "/login";

    /**
     * <p>
     * 项目中静态资源的路径，静态资源通过webjars方式引入，所以路径中会包含webjars路径
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月15日
     */
    public static final String PRO_WEBJARS_PATH = "/webjars";

    /**
     * <p>
     * 当前session中用户的key
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月1日
     */
    @ApiModelProperty(value = "当前session中用户的key")
    public static final String SESSION_KEY = "USER_SESSION_KEY";

    /**
     * <p>
     * 当前用户保存在session中的权限key
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月1日
     */
    @ApiModelProperty(value = "当前用户保存在session中的权限key")
    public static final String PERMISSION_KEY = "USER_PERMISSION_KEY";

    /**
     * <p>
     * 当前用户保存在session中的后台管理菜单key
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月1日
     */
    @ApiModelProperty(value = "当前用户保存在session中的后台管理菜单key")
    public static final String MENU_KEY = "USER_MENU_KEY";

    /**
     * <p>
     * 定义图片类型
     * </p>
     *
     * @author 杨阳
     * @since 2017年9月19日
     */
    public static final List<String> imgType = new ArrayList<String>() {{
        add("jpg");
        add("jpeg");
        add("gif");
        add("png");
    }};

    /**
     * <p>
     * 断路器，隔离策略，线程策略
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月3日
     */
    public static final String HYSTRIX_STRATEGY_THREAD = "THREAD";

    /**
     * <p>
     * 断路器，隔离策略，信号量策略
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月3日
     */
    public static final String HYSTRIX_STRATEGY_SEMAPHORE = "SEMAPHORE";

    /**
     * <p>
     * 设置断路器隔离策略使用的类
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月3日
     */
    public static final String HYSTRIX_STRATEGY_CLASS = "execution.isolation.strategy";

    /**
     * <p>
     * 利用webjars引用静态文件，映射地址
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月13日
     */
    public static final String WEB_JARS_PATTERN = "/webjars/**";

    /**
     * <p>
     * 利用webjars引用静态文件，访问地址
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月13日
     */
    public static final String WEB_JARS_PATH = "classpath:/META-INF/resources/webjars/";

    /**
     * <p>
     * 本地静态资源，映射地址
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月13日
     */
    public static final String LOCAL_STATIC_PATTERN = "/**";

    /**
     * <p>
     * 本地静态资源，访问地址
     * </p>
     *
     * @author 杨阳
     * @since 2017年11月13日
     */
    public static final String LOCAL_STATIC_PATH = "classpath:static/";
}


